#include <bits/stdc++.h>
using namespace std;
int n, input;
string s;
vector<int> jump;
bool vis[100005];
bool bisa = false;
void grasshopper(int x){
if(x < 0 || x >= n){
bisa = true;
return;
}
if(vis[x]){
bisa = false;
return;
}
vis[x] = true;
if(s[x] == '>'){
grasshopper(x+jump[x]);
}
else{
grasshopper(x-jump[x]);
}
}
int main(){
cin >> n;
cin >> s;
for(int i = 0; i < n; i++){
cin >> input;
jump.push_back(input);
}
grasshopper(0);
if(bisa){
cout << "FINITE";
}
else cout << "INFINITE";
}
287B - Pipeline | 510A - Fox And Snake |
1520B - Ordinary Numbers | 1624A - Plus One on the Subset |
350A - TL | 1487A - Arena |
1520D - Same Differences | 376A - Lever |
1305A - Kuroni and the Gifts | 1609A - Divide and Multiply |
149B - Martian Clock | 205A - Little Elephant and Rozdil |
1609B - William the Vigilant | 978B - File Name |
1426B - Symmetric Matrix | 732B - Cormen --- The Best Friend Of a Man |
1369A - FashionabLee | 1474B - Different Divisors |
1632B - Roof Construction | 388A - Fox and Box Accumulation |
451A - Game With Sticks | 768A - Oath of the Night's Watch |
156C - Cipher | 545D - Queue |
459B - Pashmak and Flowers | 1538A - Stone Game |
1454C - Sequence Transformation | 165B - Burning Midnight Oil |
17A - Noldbach problem | 1350A - Orac and Factors |